home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / phase5 / ppcrelease / examples / msg3ppc.c < prev    next >
C/C++ Source or Header  |  1998-02-21  |  2KB  |  90 lines

  1. #include <exec/types.h>
  2. #include <exec/nodes.h>
  3. #include <exec/lists.h>
  4. #include <exec/memory.h>
  5. #include <utility/tagitem.h>
  6. #include <powerup/ppclib/interface.h>
  7. #include <powerup/ppclib/message.h>
  8. #include <powerup/ppclib/tasks.h>
  9. #include <powerup/gcclib/powerup_protos.h>
  10.  
  11. #define text    "Text sent by PPC processor\n"
  12. #define    DEBUG    1
  13.  
  14. struct StartupData
  15. {
  16.     ULONG    MsgCount;
  17. };
  18.  
  19. BPTR    MyFile;
  20. void printf(char *String);
  21.  
  22. int    main(void)
  23. {
  24. struct TagItem        MyTags[10];
  25. struct StartupData    *StartupData;
  26. void            *PPCPort;
  27. void            *ReplyPort;
  28. void            *M68kMsg;
  29. void            *Body;
  30. ULONG            result;
  31. ULONG            MsgCount;
  32. ULONG            i;
  33.  
  34.   StartupData    =(struct StartupData *) PPCGetTaskAttr(PPCTASKTAG_STARTUP_MSGDATA);
  35.  
  36.   MsgCount    =    StartupData->MsgCount;
  37.  
  38. #if DEBUG
  39.   if (MyFile = PPCOpen("con:0/0/640/200/MessageDemo - PPC output/CLOSE", MODE_NEWFILE))
  40.   {
  41. #endif
  42.  
  43.     if (PPCPort=(void*) PPCGetTaskAttr(PPCTASKTAG_MSGPORT))
  44.     {
  45. #if DEBUG
  46.       printf("Waiting for M68k message\n");
  47. #endif
  48.       for (i=0;i<MsgCount;i++)
  49.       {
  50.         PPCWaitPort(PPCPort);
  51.  
  52. #if DEBUG
  53.         printf("Getting message\n");
  54. #endif
  55.         if (M68kMsg = PPCGetMessage(PPCPort))
  56.         {
  57. #if DEBUG
  58.           printf("Message: ");
  59.           printf((char*) PPCGetMessageAttr(M68kMsg, PPCMSGTAG_DATA));
  60. #endif
  61.           PPCReplyMessage(M68kMsg);
  62.         }
  63.         else
  64.         {
  65. #if DEBUG
  66.           printf("Did not get m68k msg\n");
  67. #endif
  68.         }
  69.       }
  70.     }
  71.     else
  72.     {
  73. #if DEBUG
  74.       printf("Could not find PPC Task`s msgport\n");
  75. #endif
  76.     }
  77.  
  78. #if DEBUG
  79.     printf("Closing output\n");
  80.     PPCClose(MyFile);
  81.   }
  82. #endif
  83. }
  84.  
  85. void printf(char *String)
  86. {
  87.   PPCWrite(MyFile, String, strlen(String));
  88. }
  89.  
  90.